import { reactive } from "../../reactive";
import { effect, depsMap } from "../../effect/effect";

const state = reactive({
  a: 123,
  b: 456,
  c: 789,
});

effect(() => {
  effect(() => {
    state.a;
    console.log("执行内部effect");
    console.log("-----------");
  });
  state.b;
  console.log("执行外部effect");
  console.log("-----------");
});
console.log("完整的key和fn依赖", depsMap);

// 结果：没有收集到b的依赖
// 原因：
// 函数栈有问题：内部函数执行完后，activeEffect=null了
// 此时外部函数fn还没执行完（外部函数在此处的执行顺序是：先执行内部，在收集b），此时b还没有依赖收集
// 然后对b进行依赖收集，发现全局变量activeEffect=null了，就没对b收集
